package lv.clientedisqueria.view.principal;

import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;

import lv.clientedisqueria.controller.principal.PrincipalController;

@SuppressWarnings("serial")
public class PrincipalMenuBarView extends JMenuBar {

	private JMenu principalMenu;
	private JMenuItem temaMI;
	private JMenuItem discoMI;
	private JMenuItem salirMI;
	
	private JMenu adminMenu;
	private JMenuItem usuarioMI;
	
	private JMenu ayudaMenu;
	private JMenuItem acercaMI;
	private final PrincipalController principalController;

	public PrincipalMenuBarView(PrincipalController principalController) {
		this.principalController = principalController;
		iniciarVista();
	}

	private void iniciarVista() {
		this.add(getPrincipalMenu());
		this.add(getAdminMenu());
		this.add(getAyudaMenu());
	}

	private JMenu getPrincipalMenu() {
		if(principalMenu == null){
			principalMenu = new JMenu("Principal");
			principalMenu.add(getTemaMI());
			principalMenu.add(getDiscoMI());
			principalMenu.addSeparator();
			principalMenu.add(getSalirMI());
		}
		return principalMenu;
	}
	
	private JMenuItem getTemaMI() {
		if(temaMI == null){
			temaMI = new JMenuItem(this.principalController.getTemaAction());
			temaMI.setToolTipText("Ir al administrador de temas");
		}
		return temaMI;
	}

	private JMenuItem getDiscoMI() {
		if(discoMI == null){
			discoMI = new JMenuItem(this.principalController.getDiscoAction());
			discoMI.setToolTipText("Ir al administrador de discos");
		}
		return discoMI;
	}

	private JMenuItem getSalirMI() {
		if(salirMI == null){
			salirMI = new JMenuItem(this.principalController.getSalirAction());
			salirMI.setToolTipText("Salir de la aplicación");
		}
		return salirMI;
	}
	
	private JMenu getAyudaMenu() {
		if(ayudaMenu == null){
			ayudaMenu = new JMenu("Ayuda");
			ayudaMenu.add(getAcercaMI());
		}
		return ayudaMenu;
	}
	
	private JMenuItem getAcercaMI() {
		if(acercaMI == null){
			acercaMI = new JMenuItem();
		}
		return acercaMI;
	}


	public JMenuItem getUsuarioMI() {
		if(usuarioMI == null){
			usuarioMI = new JMenuItem(this.principalController.getAdminUsuarioAction());
			usuarioMI.setToolTipText("Administrar Usuarios");
		}
		return usuarioMI;
	}


	public JMenu getAdminMenu() {
		if(adminMenu == null){
			adminMenu = new JMenu("Admin Usuarios");
			adminMenu.add(getUsuarioMI());
		}
		return adminMenu;
	}
}